package com.zhangxin.aiInterview.manager.knoewlege_base_api;

import com.zhangxin.aiInterview.manager.knoewlege_base_api.dto.UploadResp;
import com.zhangxin.aiInterview.manager.knoewlege_base_api.utils.ChatDocUtil;

/**
 * 知识库api调用模版
 */
public class KnowledgeBaseApiTemplate {
    private static final String uploadUrl = "https://chatdoc.xfyun.cn/openapi/v1/file/upload";
    private static final String fileStatusUrl = "https://chatdoc.xfyun.cn/openapi/v1/file/status";
    private static final String chatUrl = "wss://chatdoc.xfyun.cn/openapi/chat";
    private static final String appId = "291be2ca";
    private static final String secret = "MzdhNDEzNzVkMDcyZDhhZTM3MWNjODhj";

    /**
     * 知识库api调用
     * @param question 问题
     * @param fileId 文件id
     * @param userId
     */
    public static void knowledgeBaseApiUsage(String question,String fileId,Long userId) {
        ChatDocUtil chatDocUtil = new ChatDocUtil();
        // 问答，上传文件状态为vectored时才可以问答，文件状态可以调用【文档状态查询】接口查询
        chatDocUtil.chat(chatUrl, fileId, question, appId, secret,userId);
    }

    /**
     * 上传文档代码
     * @param args
     */
    public static void main(String[] args) {
        ChatDocUtil chatDocUtil = new ChatDocUtil();
        // 1、上传
        UploadResp uploadResp = chatDocUtil.upload(KnowledgeBaseApiTemplate.class.getResource("/").getPath() + "test.txt", uploadUrl, appId, secret);
        System.out.println("请求sid=" + uploadResp.getSid());
        System.out.println("文件id=" + uploadResp.getData().getFileId());
        // 2、问答，上传文件状态为vectored时才可以问答，文件状态可以调用【文档状态查询】接口查询
//        String fileId = "86defec0aca4419085acc4d0b3f4e457";
//        String question = "生成5个选择题，3个问答题，2个编程题 ，####要求：返回的数据为json格式，按照如下要求返回数据 type等于1是选择题，type等于2是问答题：type等于3是编程题 [ { \"type\": 1, \"question\": [ { \"title\": \"题目标题\", \"option\": [ {\"value\": \"选项内容\", \"key\": \"A\"}, {\"value\": \"选项内容\", \"key\": \"B\"} ] } ] }, { \"type\": 2, \"question\": [\"问答题1\", \"问答题2\"] }, { \"type\": 3, \"question\": [\"编程题1\"] } ]";
//        chatDocUtil.chat(chatUrl, fileId, question, appId, secret);
        //86defec0aca4419085acc4d0b3f4e457
    }
}